package org.example.service;


import lombok.extern.slf4j.Slf4j;
import org.example.internalCommon.constant.OrderConstants;
import org.example.internalCommon.dto.OrderInfo;
import org.example.internalCommon.dto.ResponseResult;
import org.example.internalCommon.request.OrderRequest;
import org.example.mapper.OrderInfoMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author cpf
 * @since 2022-10-10
 */
@Service
@Slf4j
public class OrderInfoService {

    @Autowired
    OrderInfoMapper orderInfoMapper;


    @Autowired
    StringRedisTemplate stringRedisTemplate;


    /**
     * 新建订单
     * @param orderRequest
     * @return
     */
    public ResponseResult add(OrderRequest orderRequest) {

        // 测试当前城市是否有可用的司机


        // 需要判断计价规则的版本是否为最新


        // 需要判断 下单的设备是否是 黑名单设备


        // 判断：下单的城市和计价规则是否正常



        // 判断乘客 是否有进行中的订单


        // 创建订单
        OrderInfo orderInfo = new OrderInfo();

        BeanUtils.copyProperties(orderRequest,orderInfo);

        orderInfo.setOrderStatus(OrderConstants.ORDER_START);

        LocalDateTime now = LocalDateTime.now();
        orderInfo.setGmtCreate(now);
        orderInfo.setGmtModified(now);

        orderInfoMapper.insert(orderInfo);

        // 定时任务的处理


        return ResponseResult.success();
    }



}
